/**
 * 优化1
 */
public class SingletonLazy2 {

    // 先不初始化, 用到的时候在创建
    private static SingletonLazy2 singletonLazy2 = null;

    private SingletonLazy2() {

    }

    // 提供一个获取对象的方法
    public static SingletonLazy2 getInstance() {

        // 上锁, 这里还是有问题, 就是第一次上锁后创建了后面的操作就不需要上锁了, 这里会持续的浪费资源
        synchronized (SingletonLazy2.class) {
            // 对象为 null 的话创建一个
            if (singletonLazy2 == null) {
                singletonLazy2 = new SingletonLazy2();
            }
        }
        return singletonLazy2;
    }
}
